/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.urbainski.estagio.entidade;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author Cristian Elder Urbainski
 * @since 11/12/2011
 */
@Entity
@Table(name = "mensagem")
public class Mensagem implements Serializable {
    
    private static final long serialVersionUID = 1L;
    
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id_mensagem")
    private Integer idMensagem;

    @Column(name = "id_receptor")
    private Integer idReceptor;
    
    @Column(name = "id_emissor")
    private Integer idEmissor;
    
    @Column(name = "dt_mensagem")
    @Temporal(TemporalType.TIMESTAMP)
    private Date dtMensagem;
    
    @Column(name = "ds_mensagem")
    private String dsMensagem;
    
    @Lob
    @Column(name = "bi_arquivo")
    private byte[] biArquivo;

    @Column(name = "ds_assunto")
    private String dsAssunto;
    
    @Column(name = "nm_arquivo")
    private String nmArquivo;

    @Column(name = "tp_situacao")
    private Integer tpSituacao;
    
	@JoinColumn(name = "id_receptor", referencedColumnName = "id_usuario", insertable = false, updatable= false)
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Usuario receptor;
    
    @JoinColumn(name = "id_emissor", referencedColumnName = "id_usuario", insertable = false, updatable= false)
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Usuario emissor;
    
    public Integer getTpSituacao() {
		return tpSituacao;
	}

	public void setTpSituacao(Integer tpSituacao) {
		this.tpSituacao = tpSituacao;
	}
    
    public byte[] getBiArquivo() {
        return biArquivo;
    }

    public void setBiArquivo(byte[] biArquivo) {
        this.biArquivo = biArquivo;
    }

    public String getDsAssunto() {
        return dsAssunto;
    }

    public void setDsAssunto(String dsAssunto) {
        this.dsAssunto = dsAssunto;
    }

    public String getDsMensagem() {
        return dsMensagem;
    }

    public void setDsMensagem(String dsMensagem) {
        this.dsMensagem = dsMensagem;
    }

    public Date getDtMensagem() {
        return dtMensagem;
    }

    public void setDtMensagem(Date dtMensagem) {
        this.dtMensagem = dtMensagem;
    }

    public Usuario getEmissor() {
        return emissor;
    }

    public void setEmissor(Usuario emissor) {
        this.emissor = emissor;
    }

    public Integer getIdEmissor() {
        return idEmissor;
    }

    public void setIdEmissor(Integer idEmissor) {
        this.idEmissor = idEmissor;
    }

    public Integer getIdMensagem() {
        return idMensagem;
    }

    public void setIdMensagem(Integer idMensagem) {
        this.idMensagem = idMensagem;
    }

    public Integer getIdReceptor() {
        return idReceptor;
    }

    public void setIdReceptor(Integer idReceptor) {
        this.idReceptor = idReceptor;
    }

    public String getNmArquivo() {
        return nmArquivo;
    }

    public void setNmArquivo(String nmArquivo) {
        this.nmArquivo = nmArquivo;
    }

    public Usuario getReceptor() {
        return receptor;
    }

    public void setReceptor(Usuario receptor) {
        this.receptor = receptor;
    }
    
}
